<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script type="text/javascript">
    /*
    ES6 引入了一种新的原始数据类型 Symbol，表示独一无二的值。它是
JavaScript 语言的第七种数据类型，是一种类似于字符串的数据类型。
Symbol 特点
1) Symbol 的值是唯一的，用来解决命名冲突的问题
2) Symbol 值不能与其他数据进行运算
3) Symbol 定义 的 对象属 性 不能 使 用 for…in 循 环遍 历 ，但 是可 以 使 用
Reflect.ownKeys 来获取对象的所有键名
    * */

    //创建 Symbol
    let s1 = Symbol();
    console.log(s1, typeof s1); // Symbol() 'symbol'

    //添加标识的 Symbol
    let s2_1 = Symbol('abc');
    let s2_2 = Symbol('abc');
    console.log(s2_1, s2_2, s2_1 === s2_2); //Symbol(abc) Symbol(abc) false

    //使用 Symbol for 定义
    let s3_1 = Symbol.for('abc');
    let s3_2 = Symbol.for('abc');
    console.log(s3_1, s3_2, s3_1 === s3_2); // Symbol(abc) Symbol(abc) true

    for (const ownKey of Reflect.ownKeys(Symbol)) {
        console.log(ownKey);
    }
</script>
</html>